package com.aiiter.house.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.aiiter.common.annotation.Excel;
import com.aiiter.common.core.domain.BaseEntity;

/**
 * 房间合同对象 house_contract
 *
 * @author ruoyi
 * @date 2024-09-22
 */
public class HouseContract extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 合同ID，主键 */
    private Long contractId;

    /** 租户ID */
    @Excel(name = "租户ID")
    private Long tenantId;

    /** 房间 */
    @Excel(name = "房间")
    private Long roomId;

    /** 租期 */
    @Excel(name = "租期")
    private String leaseTerm;

    /** 合同开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startDate;

    /** 合同结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "合同结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endDate;

    /** 租金金额 */
    @Excel(name = "租金金额")
    private BigDecimal rentAmount;

    /** 支付频率 */
    @Excel(name = "支付频率")
    private String paymentFrequency;

    /** 每月支付日 */
    @Excel(name = "每月支付日")
    private Integer paymentDay;

    /** 押金金额 */
    @Excel(name = "押金金额")
    private BigDecimal depositAmount;

    /** 合同状态 */
    @Excel(name = "合同状态")
    private String status;

    /** 合同附件路径 */
    @Excel(name = "合同附件路径")
    private String attachmentPath;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date createdAt;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date updatedAt;

    public void setContractId(Long contractId)
    {
        this.contractId = contractId;
    }

    public Long getContractId()
    {
        return contractId;
    }
    public void setTenantId(Long tenantId)
    {
        this.tenantId = tenantId;
    }

    public Long getTenantId()
    {
        return tenantId;
    }
    public void setRoomId(Long roomId)
    {
        this.roomId = roomId;
    }

    public Long getRoomId()
    {
        return roomId;
    }
    public void setLeaseTerm(String leaseTerm)
    {
        this.leaseTerm = leaseTerm;
    }

    public String getLeaseTerm()
    {
        return leaseTerm;
    }
    public void setStartDate(Date startDate)
    {
        this.startDate = startDate;
    }

    public Date getStartDate()
    {
        return startDate;
    }
    public void setEndDate(Date endDate)
    {
        this.endDate = endDate;
    }

    public Date getEndDate()
    {
        return endDate;
    }
    public void setRentAmount(BigDecimal rentAmount)
    {
        this.rentAmount = rentAmount;
    }

    public BigDecimal getRentAmount()
    {
        return rentAmount;
    }
    public void setPaymentFrequency(String paymentFrequency)
    {
        this.paymentFrequency = paymentFrequency;
    }

    public String getPaymentFrequency()
    {
        return paymentFrequency;
    }
    public void setPaymentDay(Integer paymentDay)
    {
        this.paymentDay = paymentDay;
    }

    public Integer getPaymentDay()
    {
        return paymentDay;
    }
    public void setDepositAmount(BigDecimal depositAmount)
    {
        this.depositAmount = depositAmount;
    }

    public BigDecimal getDepositAmount()
    {
        return depositAmount;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setAttachmentPath(String attachmentPath)
    {
        this.attachmentPath = attachmentPath;
    }

    public String getAttachmentPath()
    {
        return attachmentPath;
    }
    public void setCreatedAt(Date createdAt)
    {
        this.createdAt = createdAt;
    }

    public Date getCreatedAt()
    {
        return createdAt;
    }
    public void setUpdatedAt(Date updatedAt)
    {
        this.updatedAt = updatedAt;
    }

    public Date getUpdatedAt()
    {
        return updatedAt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("contractId", getContractId())
                .append("tenantId", getTenantId())
                .append("roomId", getRoomId())
                .append("leaseTerm", getLeaseTerm())
                .append("startDate", getStartDate())
                .append("endDate", getEndDate())
                .append("rentAmount", getRentAmount())
                .append("paymentFrequency", getPaymentFrequency())
                .append("paymentDay", getPaymentDay())
                .append("depositAmount", getDepositAmount())
                .append("status", getStatus())
                .append("attachmentPath", getAttachmentPath())
                .append("createdAt", getCreatedAt())
                .append("updatedAt", getUpdatedAt())
                .toString();
    }
}
